Approaches have been proposed for executing parallel processing using plural communication terminals such as mobile telephones. According to one such approach, a process managing apparatus such as a central server searches for communication terminals capable of accepting parallel processing and requests the communication terminals to execute the parallel processing (see, for example, Japanese Laid-Open Patent Publication No. 2006-201896). Another approach proposes a process managing apparatus that determines a process to be assigned to a communication terminal based on the processing performance and memory capacity of a CPU equipped on the communication terminal (see, for example, Japanese Laid-Open Patent Publication No. 2007-241394).
Conventional communication terminals have a narrow communication band and a long communication delay times and therefore, are not suitable for parallel processing that requires frequent communication sessions among the communication terminals. Consequently, fully distributed parallel processing that requires no communication among the communication terminals, from the start of a process until the completion of the process is assumed.
Recently, developments in communication technology have enabled high speed communication between communication terminals with reduced delays. Consequently, parallel processing in which a communication terminal frequently refers to data produced by another communication terminal to perform processing has become possible. In this case, the communication terminals do not have the same communication performance and therefore, distribution (allocation) of data to the communication terminals has to be performed taking into consideration the communication performance of each communication terminal.
In the field of large-scale computers, etc., in a distributed-memory multi-processor system, a process of determining the data distribution (allocation) is executed taking into consideration the communication performance among processing nodes. However, the communication performance of a communication terminal continually varies due to the factors in the communication environment such as the distance between the communication terminal and a base station and therefore, the data distribution (allocation) has to be executed taking the communication environment into consideration.
However, parallel processing that takes the communication performance of each of the communication terminals into consideration is not possible according to the conventional techniques. Therefore, an approach has been desired where parallel processing can be executed efficiently using plural communication terminals and corresponding to variations of the communication state such as the communication performance and the communication environment.
For example, to migrate data between the communication terminals, communication to deliver the data has to be performed between the communication terminals as well as some processes at each of the communication terminals and mutual communication among the communication terminals such as broadcasting to the other communication terminals that the communication terminal retaining the data has changed. Migration costs, such as time, arise with such data migration. Therefore, the cost for migrating data between communication terminals increases if data is simply exchanged between a communication terminal whose speed is high and that whose speed is low, each time the communication speed of a communication terminal varies. Therefore, it is necessary to cope with variations in communication speed with as few data migrations as possible.